package com.reliable.service.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.reliable.api.dto.template.TemplateAnalysisRecordDTO;
import com.reliable.api.param.template.TemplateAnalysisRecordPageParam;
import com.reliable.common.annotation.DataSource;
import com.reliable.common.enums.DataSourceType;
import com.reliable.service.domain.ReliableTemplateAnalysisTask;

/**
 * 模板关联的分析任务表Service接口
 */
public interface IReliableTemplateAnalysisTaskService extends IService<ReliableTemplateAnalysisTask> {
    /**
     * 新增模板关联的分析任务
     * @param task 分析任务对象
     * @return boolean 是否添加成功
     */
    boolean addTemplateAnalysisTask(ReliableTemplateAnalysisTask task);

    /**
     * 更新分析任务状态（公共方法，支持所有状态）
     *
     * @param taskId            任务ID
     * @param status            任务状态（1-待分析，2-分析中，3-成功，4-失败，5-部分成功）
     * @param totalSessions     总会话数（可为 null）
     * @param highRiskSessions  高风险会话数（可为 null）
     * @param errorLog          错误日志（仅状态=4 或 5 时建议填写）
     */
    @DataSource(DataSourceType.MASTER)
    void updateAnalysisTaskStatus(
        Long taskId,
        Integer status,
        Integer totalSessions,
        Integer highRiskSessions,
        String errorLog
    );
    
    /**
     * 分页查询模板分析记录
     * @param param 查询参数
     * @return 分页结果
     */
    IPage<TemplateAnalysisRecordDTO> pageTemplateAnalysisRecords(TemplateAnalysisRecordPageParam param);
}